Debug_Console=bool | Turn console display of debug info text on/off |
+GD | Same as Debug_Console=On |
-GD | Same as Debug_Console=Off |
Fatal_Console=bool | Turn console display of fatal error text on/off |
+GF | Same as Fatal_Console=On |
-GF | Same as Fatal_Console=Off |
Render_Console=bool | Turn console display of render info text on/off |
+GR | Same as Render_Console=On |
-GR | Same as Render_Console=Off |
Statistic_Console=bool | Turn console display of statistic text on/off |
+GS | Same as Statistic_Console=On |
-GS | Same as Statistic_Console=Off |
Warning_Console=bool | Turn console display of warning text on/off |
+GW | Same as Warning_Console=On |
-GW | Same as Warning_Console=Off |
All_Console=bool | Turn on/off all debug, fatal, render, statistic and warning text to console. |
+GA | Same as All_Console=On |
-GA | Same as All_Console=Off |
You may suppress the output to the console of the Debug, Fatal, Render, Statistic or Warning text streams. For example the Statistic_Console=off option or the -GS switch can turn off the Statistic stream. Using on or +GS you may turn it on again. You may also turn all five of these streams on or off at once using the All_Console option or +GA switch.
Debug_File=true | Echo debug info text to DEBUG.OUT |
Debug_File=false | Turn off file output of debug info |
Debug_File=file | Echo debug info text to file |
+GDfile | Both Debug_Console=On, Debug_File=file |
-GDfile | Both Debug_Console=Off, Debug_File=file |
Fatal_File=true | Echo fatal text to FATAL.OUT |
Fatal_File=false | Turn off file output of fatal |
Fatal_File=file | Echo fatal info text to file |
+GFfile | Both Fatal_Console=On, Fatal_File=file |
-GFfile | Both Fatal_Console=Off, Fatal_File=file |
Render_File=true | Echo render info text to RENDER.OUT |
Render_File=false | Turn off file output of render info |
Render_File=file | Echo render info text to file |
+GRfile | Both Render_Console=On, Render_File=file |
-GRfile | Both Render_Console=Off, Render_File=file |
Statistic_File=true | Echo statistic text to STATS.OUT |
Statistic_File=false | Turn off file output of statistics |
Statistic_File=file | Echo statistic text to file |
+GSFile | Both Statistic_Console=On, Statistic_File=file |
-GSFile | Both Statistic_Console=Off, Statistic_File=file |
Warning_File=true | Echo warning info text to WARNING.OUT |
Warning_File=false | Turn off file output of warning info |
Warning_File=file | Echo warning info text to file |
+GWfile | Both Warning_Console=On, Warning_File=file |
-GWfile | Both Warning_Console=Off, Warning_File=file |
All_File=true | Echo all debug, fatal, render, statistic and warning text to ALLTEXT.OUT |
All_File=false | Turn off file output of all debug, fatal, render, statistic and warning text |
All_File=file | Echo all debug, fatal, render, statistic and warning text to file |
+GAfile | Both All_Console=On, All_File=file |
-GAfile | Both All_Console=Off, All_File=file |
You may direct a copy of the text streams to a text file for the Debug, Fatal, Render, Statistic or Warning text streams. For example the Statistic_File=s option or the +GSs switch. If the string s is true or any of the other valid true strings then that stream is redirected to a file with a default name. Valid true values are true, yes, on or 1. If the value is false the direction to a text file is turned off. Valid false values are false, no, off or 0. Any other string specified turns on file output and the string is interpreted as the output file name.
Similarly you may specify such a true, false or file name string after a switch such as +GSfile. You may also direct all five streams to the same file using the All_File option or +GA switch. You may not specify the same file for two or more streams because POV-Ray will fail when it tries to open or close the same file twice.
+H or +? | Show help screen 0 if this is the only switch |
+H0 to +H8 | Show help screen 0 to 8 if this is the only switch |
+?0 to +?8 | Same as +H0 to +H8 |
Note that there are no INI style equivalents to these options.
Graphical interface versions of POV-Ray such as Mac or Windows have extensive online help. Other versions of POV-Ray have only a few quick-reference help screens. The +? switch, optionally followed by a single digit from 0 to 8, will display these help screens to the Banner text stream. After displaying the help screens, POV-Ray terminates. Because some operating systems do not permit a question mark as a command line switch you may also use the +H switch. Note however that this switch is also used to specify the height of the image in pixels. Therefore the +H switch is only interpreted as a help switch if it is the only switch on the command line and if the value after the switch is less than or equal to 8.
Quality=n | Set quality value to n (0 <= n <= 11) |
+Qn | Same as Quality=n |
The Quality=n option or +Qn switch allows you to specify the image rendering quality. You may choose to lower the quality for test rendering and raise it for final renders. The quality adjustments are made by eliminating some of the calculations that are normally performed. For example settings below 4 do not render shadows. Settings below 8 do not use reflection or refraction. The values correspond to the following quality levels:
0,1 | Just show quick colors. Use full ambient lighting only. Quick colors are used only at 5 or below. |
2,3 | Show specified diffuse and ambient light. |
4 | Render shadows, but no extended lights. 5 Render shadows, including extended lights. |
6,7 | Compute texture patterns. |
8 | Compute reflected, refracted, and transmitted rays. |
9 | Compute halos. |
The default is 9 if not specified.
+QR | Turns radiosity on -QR Turns radiosity on |
Radiosity is an additional calculation which computes diffuse inter-reflection. It is an extremely slow calculation that is somewhat experimental. The parameters which control how radiosity calculations are performed are specified in the radiosity section of the global_settings statement. See section "Radiosity" for further details.
Bounding=bool | Turn bounding on/off |
+MB | Turn bounding on; threshold 25 or prev. amt |
-MB | Turn bounding off |
Bounding_Threshold=n | Set bound threshold to n |
+MBn | Turn bounding on; bound threshold to n |
-MBn | Turn bounding off; for future threshold to n |
Light_Buffer=bool | Turn light buffer on/off |
+UL | Turn light buffer on |
-UL | Turn light buffer off |
Vista_Buffer=bool | Turn vista buffer on/off |
+UV | Turn vista buffer on |
-UV | Turn vista buffer off |
POV-Ray uses a variety of spatial sub-division systems to speed up ray-object intersection tests. The primary system uses a hierarchy of nested bounding boxes. This system compartmentalizes all finite objects in a scene into invisible rectangular boxes that are arranged in a tree-like hierarchy. Before testing the objects within the bounding boxes the tree is descended and only those objects are tested whose bounds are hit by a ray. This can greatly improve rendering speed. However for scenes with only a few objects the overhead of using a bounding system is not worth the effort. The Bounding=off option or -MB switch allows you to force bounding off. The default value is on.
The Bounding_Threshold=n or +MBn switch allows you to set the minimum number of objects necessary before bounding is used. The default is +MB25 which means that if your scene has fewer than 25 objects POV-Ray will automatically turn bounding off because the overhead isn't worth it. Generally it's a good idea to use a much lower threshold like +MB5.
Reflected and transmitted rays do not take advantage of the light and vista buffer.
The default settings are Vista_Buffer=on or +UV and Light_Buffer=on or +UL. The option to turn these features off is available to demonstrate their usefulness and as protection against unforeseen bugs which might exist in any of these bounding systems.
In general, any finite object and many types of CSG of finite objects will properly respond to this bounding system. In addition blobs and meshes use an additional internal bounding system. These systems are not affected by the above switch. They can be switched off using the appropriate syntax in the scene file (see "Blob" and "Mesh" for details). Text objects are split into individual letters that are bounded using the bounding box hierarchy. Some CSG combinations of finite and infinite objects are also automatically bound. The end result is that you will rarely need to add manual bounding objects as was necessary in earlier versions of POV-Ray unless you use many infinite objects.
Antialias=bool | Turns anti-aliasing on/off |
+A | Turns aa on with threshold 0.3 or previous amount |
-A | Turns anti-aliasing off |
Sampling_Method=n | Sets aa-sampling method (1 or 2) |
+AMn | Same as Sampling_Method=n |
Antialias_Threshold=n.n | Sets anti-aliasing threshold |
+An.n | Sets aa on with aa-threshold at n.n |
-An.n | Sets aa off (aa-threshold n.n in future) |
Jitter=bool | Sets aa-jitter on/off |
+J | Sets aa-jitter on with 1.0 or previous amount |
-J | Sets aa-jitter off |
Jitter_Amount=n.n | Sets aa-jitter amount to n.n. If n.n <= 0 aa-jitter is set off |
+Jn.n | Sets aa-jitter on; jitter amount to n.n. If n.n <= 0 aa-jitter is set off |
-Jn.n | Sets aa-jitter off (jitter amount n.n in future) |
Antialias_Depth=n | Sets aa-depth (1 <= n <= 9) |
+Rn | Same as Antialias_Depth=n |
The ray-tracing process is in effect a discrete, digital sampling of the image with typically one sample per pixel. Such sampling can introduce a variety of errors. This includes a jagged, stair-step appearance in sloping or curved lines, a broken look for thin lines, moire patterns of interference and lost detail or missing objects, which are so small they reside between adjacent pixels. The effect that is responsible for those errors is called aliasing.
Anti-aliasing is any technique used to help eliminate such errors or to reduce the negative impact they have on the image. In general, anti-aliasing makes the ray-traced image look smoother. The Antialias=on option or +A switch turns on POV-Ray's anti-aliasing system.
POV-Ray gives you the option to use one of two alternate super-sampling methods. The Sampling_Method=n option or +AMn switch selects non-adaptive super-sampling (method 1) or adaptive super-sampling (method 2). Selecting one of those methods does not turn anti-aliasing on. This has to be done by using the +A command line switch or Antialias=on option.
In the default, non-adaptive method (+AM1), POV-Ray initially traces one ray per pixel. If the color of a pixel differs from its neighbors (to the left or above) by more than a threshold value then the pixel is super-sampled by shooting a given, fixed number of additional rays. The default threshold is 0.3 but it may be changed using the Antialias_Threshold=n.n option. When the switches are used, the threshold may optionally follow the +A. For example +A0.1 turns anti-aliasing on and sets the threshold to 0.1.
If this difference is greater than the threshold both pixels are super-sampled. The rgb values are in the range from 0.0 to 1.0 thus the most two pixels can differ is 3.0. If the anti-aliasing threshold is 0.0 then every pixel is super-sampled. If the threshold is 3.0 then no anti-aliasing is done. Lower threshold means more anti-aliasing and less speed. Use anti-aliasing for your final version of a picture, not the rough draft. The lower the contrast, the lower the threshold should be. Higher contrast pictures can get away with higher tolerance values. Good values seem to be around 0.2 to 0.4.
When using the non-adaptive method, the default number of super-samples is nine per pixel, located on a 3*3 grid. The Antialias_Depth=n option or +Rn switch controls the number of rows and columns of samples taken for a super-sampled pixel. For example +R4 would give 4*4=16 samples per pixel.
The second, adaptive super-sampling method starts by tracing four rays at the corners of each pixel. If the resulting colors differ more than the threshold amount additional samples will be taken. This is done recursively, i. e. the pixel is divided into four sub-pixels that are separately traced and tested for further subdivision. The advantage of this method is the reduced number of rays that have to be traced. Samples that are common among adjacent pixels and sub-pixels are stored and reused to avoid re-tracing of rays. The recursive character of this method makes it adaptive, i. e. the super-sampling concentrates on those parts of the pixel that are more likely to need super-sampling (see figure below).
The maximum number of subdivisions is specified by the Antialias_Depth=n option or +Rn switch. This is different from the non-adaptive method were the total number of super-samples is specified. A maximum number of n subdivisions results in a maximum number of samples per pixel that is given by the following table.
Number of samples per Maximum number of samples super-sampled pixel for per super-sampled pixel for +Rn the non-adaptive method the adaptive method 1 1 9 2 4 25 3 9 81 4 16 289 5 25 1089 6 36 4225 7 49 16641 8 64 66049 9 81 263169
You should note that the maximum number of samples in the adaptive case is hardly ever reached for a given pixel. If the adaptive method is used with no anti-aliasing each pixel will be the average of the rays traced at its corners. In most cases a recursion level of three is sufficient.
Another way to reduce aliasing artifacts is to introduce noise into the sampling process. This is called jittering and works because the human visual system is much more forgiving to noise than it is to regular patterns. The location of the super-samples is jittered or wiggled a tiny amount when anti-aliasing is used. Jittering is used by default but it may be turned off with the Jitter=off option or -J switch. The amount of jittering can be set with the Jitter_Amount=n.n option. When using switches the jitter scale may be specified after the +J switch. For example +J0.5 uses half the normal jitter. The default amount of 1.0 is the maximum jitter which will insure that all super-samples remain inside the original pixel. Note that the jittering noise is random and non-repeatable so you should avoid using jitter in animation sequences as the anti-aliased pixels will vary and flicker annoyingly from frame to frame.